#include<bits/stdc++.h>
using namespace std;
struct car{
    double d,v,a;
};
car c[100001];
double l[100001];
double r[100001];
int t;
int n,m,L,V;
int main(){
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    cin>>t;
    for(int i=1;i<=t;i++){
        cin>>n>>m;
        cin>>L>>V;
        for(int j=1;j<=n;j++) cin>>c[j].d>>c[j].v>>c[j].a;
        for(int j=1;j<=m;j++) cin>>l[j];

        int flag1=false;
        int flag2=false;
        for(int j=1;j<=n;j++) {
            if(c[j].a!=0) flag1=true;
            if(c[j].a<0) flag2=true;
        }
        if(flag1){
            int ans=0;
            for(int j=1;j<=n;j++) if(c[j].v>V&&c[j].d<=l[m]) ans++;
            cout<<ans<<" "<<m-1<<endl;
        }
        else if(flag2){
            int ans=0;
            for(int j=1;j<=n;j++) if(c[j].d<=l[m]&&sqrt((l[m]-c[j].d)*2*c[j].a+c[j].v*c[j].v)>V) ans++;
            cout<<ans<<" "<<m-1<<endl;
        }

    }
    return 0;
}
